#!/usr/bin/env python3
# encoding:utf-8

'''
3. 使用本周学习的技术改造第一周的计算器实现，其目标如下：
1. 运行后提示让用户输入一个数字
2. 提示输入操作符（+ - * /）
3. 再次提示输入一个数字
4. 打印计算结果
5. 在不退出程序的前提下，可以允许用户继续输入新一组数据计
6. 尽可能改善用户体验（新需求）
'''

def input_number1():
    while True:
        num1 = input("请输入第1个数字, 按q退出: ")
        try:
            num1 = float(num1)
            return num1
        except ValueError:
            if num1.lower() == "q":
                return num1.lower()
            else:
                print("无效的数字，请重新输入！")
        
def input_number2():
    while True:
        num2 = input("请输入第2个数字, 按q退出: ")
        try:
            num2 = float(num2)
            return num2
        except ValueError:
            if num2.lower() == "q": 
                return num2.lower()
            else:
                print("无效的数字，请重新输入！")

def input_operator():
    while True:
        oper = input("请输入操作符[+ - * /]，按q退出：")
        if oper.lower() == "q" or oper in ['+', '-', '*', '/']: 
            return oper.lower()
        else:
            print("请输入正确的操作符[+ - * /]。")
    
def simple_calculator(num1, oper, num2):
    if oper == "+":
        result = num1 + num2
    elif oper == "-":
        result = num1 - num2
    elif oper == "*":
        result = num1 * num2
    elif oper == "/":
        if num2 != 0:
            result = num1 / num2
        else:
            print("除数不能为零！")
            return
    print("计算结果: {:.2f}".format(result))
            

if __name__ == '__main__':
    while True:
        num1 = input_number1()
        if num1 == "q":
            break
        oper = input_operator()
        if oper == "q":
            break
        num2 = input_number2()
        if num2 == "q":
            break
        simple_calculator(num1, oper, num2)
        

